/*
 * View.cs : Interface visual da aplicação.
 * 
 * Autor: Bruno Barbosa
 * Número: 5321
 * 
 * Sistema: Ubuntu 10.10
 * Aplicação: MonoDevelop v2.4
 * 
 */

using System;
using System.Collections.Generic;

namespace UniDP
{
	public class View
	{
		public View ()
		{
		}
		
		/*
		 * Menu do programa. Apresenta todas as opções disponíveis na aplicação. 
		 */
		public void toolOptions(){
			Console.WriteLine("\nOpções: -c	Número de professores. Aceita as seguintes combinações, \n" +
							  "			[ --ano=(numero) --estabelecimento=(nome) --grau=(numero) ]\n" +
							  "			[ --ano=(numero) --estabelecimento=(nome) ]\n" +
							  "			[ --ano=(numero) --grau=(numero) ]\n" +
							  "			[ --ano=(numero) ]\n\n" +
							  "	-cD	Número de titulares de um Doutoramento,\n" +
							  "			[ --ano=(numero) --estabelecimento=(nome) ]\n\n" +
							  "	-lD	Lista os títulares de um Doutoramento,\n" +
							  "			[ --ano=(numero) --estabelecimento=(nome) ]\n\n" +
			                  "	-lE	Lista os Estabelecimentos de um ano,\n" +
							  "			[ --ano=(numero) ]\n\n" +
							  "	-lP	Lista os Professores com o grau escolhido,\n" +
							  "			[ --ano=(numero) --grau(numero) ]\n\n" +
							  "	-lS	Lista o pessoal que Saíu a instituição num determinado ano,\n" +
							  "			[ --ano=(numero) --estabelecimento=(nome) ]\n\n" +
							  "	-lN	Lista o pessoal que Entrou na Instituição num determinado ano,\n" +
							  "			[ --ano=(numero) --estabelecimento=(nome) ]\n\n");					
		}
		
		/*
		 * (Resultado de Contagens);
		 * Define o que apresentar ao utilizador, consoante o comando. 
		 */
		public void countAnswer(int topic, int answer, string ano, string estab, string grau){
			switch(topic){
						/* [ -c ] Conta os professores com recurso ao ano, estabelecimento e grau */
				case 1: if (answer != -1)
							 Console.WriteLine("\nO número de professores de grau "+grau+" "+
											   "no(a) "+estab+", no ano 200"+ano+" é: [ "+answer+" ]\n"); 
						else Console.WriteLine("\nExemplo de utilização: udp.exe -c --ano=0 " +
											   "--estabelecimento='Universidade Fernando Pessoa' --grau=3\n");
				break;
						/* [ -c ] Conta os professores com recurso ao ano, estabelecimento */
				case 2: if (answer != -1)
							 Console.WriteLine("\nO número de professores no(a) "+estab+", "+
				                  			   "no ano 200"+ano+" é: [ "+answer+" ]\n"); 
						else Console.WriteLine("\nExemplo de utilização: udp.exe -c --ano=0 " +
											   "--estabelecimento='Universidade Fernando Pessoa'\n");
				break;
						/* [ -c ] Conta os professores com recurso ao ano e grau */
				case 3: if (answer != -1)
							 Console.WriteLine("\nO número de professores de grau "+grau+" "+
				                  			   "no ano 200"+ano+" é: [ "+answer+" ]\n"); 
						else Console.WriteLine("\nExemplo de utilização: udp.exe -c --ano=0 --grau=3\n");
				break;
						/* [ -c ] Conta os professores com recurso ao ano */
				case 4: if (answer != -1)
							 Console.WriteLine("\nO número de professores no ano 200"+ano+" "+
				                  			   "é: [ "+answer+" ]\n"); 
						else Console.WriteLine("\nExemplo de utilização: udp.exe -c --ano=0\n");
				break;
						/* [ -cD ] Conta os professores com doutoramento, recurso ao estabelecimento e ano */
				case 5: if (answer != -1)
							 Console.WriteLine("\nO número de doutorados no(a) "+estab+", "+ 
				                  			   "no ano 200"+ano+" é: [ "+answer+" ]\n"); 
						else Console.WriteLine("\nExemplo de utilização: udp.exe -cD --ano=0 " +
											   "--estabelecimento='Universidade Fernando Pessoa'\n");
				break;
			default: this.toolOptions(); break;
			}
		}
		
		/*
		 * (Resultado de Listas);
		 * Define o que apresentar ao utilizador, consoante o comando. 
		 */
		public void listAnswer(int topic, List<string> answer, string ano, string estab, string grau){
			switch(topic){
						/* [ -lE ] Lista os estabelecimentos com recurso ao ano */		
				case 1: if (answer.Count != 0){
							Console.WriteLine("\n << Lista de Estabelecimentos do ano de 200"+ano+" >>\n");

							for(int i=0; i<answer.Count; i++){
								Console.WriteLine("	"+answer[i]);
						 	}
					
							Console.WriteLine("\n << Lista de Estabelecimentos do ano de 200"+ano+" >>\n");
						}else Console.WriteLine("\nExemplo de utilização: udp.exe -lE --ano=0\n");				
				break;
				
						/* [ -lP ] Lista os detentores de qualquer grau, com recurso ao ano e ao respectivo grau */
				case 2: if (answer.Count != 0){
							Console.WriteLine("\n << Lista de Detentores do grau "+grau+" no ano de 200"+ano+" >>\n");

							for(int i=0; i<answer.Count; i++){
								Console.WriteLine("	"+answer[i]);
						 	}
					 
							Console.WriteLine("\n << Lista de Detentores do grau "+grau+" no ano de 200"+ano+" >>\n");
						}else Console.WriteLine("\nExemplo de utilização: udp.exe -lP --ano=0 --grau=3\n");
				break;
				
						/* [ -lS ] Lista o pessoal que saiu de determinada instituição, com recurso ao ano e estabelecimento */
				case 3: if (answer.Count != 0){
							Console.WriteLine("\n << Lista de Pessoal que saíu do(a) "+estab+" no ano de 200"+ano+" >>\n");

							for(int i=0; i<answer.Count; i++){
								Console.WriteLine("	"+answer[i]);
						 	}
					 
							Console.WriteLine("\n << Lista de Pessoal que saíu do(a) "+estab+" no ano de 200"+ano+" >>\n");
						}else Console.WriteLine("\nExemplo de utilização: udp.exe -lS --ano=0 " +
											   "--estabelecimento='Universidade Fernando Pessoa'\n");
				break;
				
						/* [ -lN ] Lista o pessoal que saiu de determinada instituição, com recurso ao ano e estabelecimento */
				case 4: if (answer.Count != 0){
							Console.WriteLine("\n << Lista de Pessoal que entrou no(a) "+estab+" no ano de 200"+ano+" >>\n");

							for(int i=0; i<answer.Count; i++){
								Console.WriteLine("	"+answer[i]);
						 	}
					 
							Console.WriteLine("\n << Lista de Pessoal que entrou no(a) "+estab+" no ano de 200"+ano+" >>\n");
						}else Console.WriteLine("\nExemplo de utilização: udp.exe -lN --ano=0 " +
											   "--estabelecimento='Universidade Fernando Pessoa'\n");
				break;
				
						/* [ -lD ] Lista o pessoal Doutorado, com recurso ao ano e estabelecimento */
				case 5: if (answer.Count != 0){
							Console.WriteLine("\n << Lista de doutorados do(a) "+estab+" no ano de 200"+ano+" >>\n");

							for(int i=0; i<answer.Count; i++){
								Console.WriteLine("	"+answer[i]);
						 	}
					 
							Console.WriteLine("\n << Lista de doutorados do(a) "+estab+" no ano de 200"+ano+" >>\n");
						}else Console.WriteLine("\nExemplo de utilização: udp.exe -lD --ano=0 " +
											   "--estabelecimento='Universidade Fernando Pessoa'\n");
				break;
				
						/* [ -lM ] Lista o pessoal que mudou de instituição, com recurso ao ano */
				case 6: if (answer.Count != 0){
							Console.WriteLine("\n << Lista de Pessoal que mudou de estabelecimento no ano de 200"+ano+" >>\n");

							for(int i=0; i<answer.Count; i++){
								Console.WriteLine("	"+answer[i]);
						 	}
					 
							Console.WriteLine("\n << Lista de Pessoal que mudou de estabelecimento no ano de 200"+ano+" >>\n");
						}else Console.WriteLine("\nExemplo de utilização: udp.exe -lM --ano=0\n");
				break;
			default: this.toolOptions(); break;
			}
		}
	}
}

